X-Git-Url: https://shimmer.witbreuk.eu/gitweb/UltimateKEYS.git/blobdiff_plain/1f96b29f3e6ce25f3b7bec185959ec061e6251c6..47d2ddade32e44895ed81ac090142c065bac2ebd:/autohotkey/UltimateKEYS%20(for%20AutoHotkey%20v1.1).ahk?ds=sidebyside diff --git a/autohotkey/UltimateKEYS (for AutoHotkey v1.1).ahk b/autohotkey/UltimateKEYS (for AutoHotkey v1.1).ahk index d6aae51..339713a 100644 --- a/autohotkey/UltimateKEYS (for AutoHotkey v1.1).ahk +++ b/autohotkey/UltimateKEYS (for AutoHotkey v1.1).ahk @@ -1,6 +1,6 @@ #requires AutoHotkey v1.1 -; UltimateKEYS (for AutoHotkey v1.1).ahk - 2025-01-29 +; UltimateKEYS (for AutoHotkey v1.1).ahk - 2025-02-19 ; Website : https://pieter-degroote.github.io/UltimateKEYS/ @@ -21,10 +21,12 @@ ListLines Off ; omits recently executed lines from history (for privacy and se SendMode Input ; optimizes for faster and more reliable input +global gEndKeys := "{bs}{esc}" ; ends dead key input on Backspace or Escape + ; Compose Key Sequences (declaration) -compose := ComObjCreate("Scripting.Dictionary") +global compose := ComObjCreate("Scripting.Dictionary") ; Compose : Acute Accent @@ -261,8 +263,8 @@ compose.item[".g"] := "{u+0121}" ; (ġ) g with dot above compose.item[".G"] := "{u+0120}" ; (Ġ) G with dot above compose.item[".h"] := "{u+1e23}" ; (ḣ) h with dot above compose.item[".H"] := "{u+1e22}" ; (Ḣ) H with dot above -compose.item[".i"] := "{u+0131}" ; (ı) dotless i (Turkish, Azerbaijani) -compose.item[".I"] := "{u+0130}" ; (İ) I with dot above (Turkish, Azerbaijani) +compose.item[".i"] := "{u+0131}" ; (ı) dotless i +compose.item[".I"] := "{u+0130}" ; (İ) I with dot above compose.item[".j"] := "{u+0237}" ; (ȷ) dotless j compose.item[".l"] := "{u+0140}" ; (ŀ) l with middle dot compose.item[".L"] := "{u+013f}" ; (Ŀ) L with middle dot @@ -274,7 +276,6 @@ compose.item[".o"] := "{u+022f}" ; (ȯ) o with dot above compose.item[".O"] := "{u+022e}" ; (Ȯ) O with dot above compose.item[".p"] := "{u+1e57}" ; (ṗ) p with dot above compose.item[".P"] := "{u+1e56}" ; (Ṗ) P with dot above -compose.item[".q"] := "{u+1e9b}" ; (ẛ) long s with dot above compose.item[".r"] := "{u+1e59}" ; (ṙ) r with dot above compose.item[".R"] := "{u+1e58}" ; (Ṙ) R with dot above compose.item[".s"] := "{u+1e61}" ; (ṡ) s with dot above @@ -313,10 +314,10 @@ compose.item["-d"] := "{u+0111}" ; (đ) d with stroke compose.item["-D"] := "{u+0110}" ; (Đ) D with stroke compose.item["-e"] := "{u+0113}" ; (ē) e with macron compose.item["-E"] := "{u+0112}" ; (Ē) E with macron -compose.item["-g"] := "{u+01e5}" ; (ǥ) g with stroke (Skolt Sami) -compose.item["-G"] := "{u+01e4}" ; (Ǥ) G with stroke (Skolt Sami) -compose.item["-h"] := "{u+0127}" ; (ħ) h with stroke (Maltese) -compose.item["-H"] := "{u+0126}" ; (Ħ) H with stroke (Maltese) +compose.item["-g"] := "{u+01e5}" ; (ǥ) g with stroke +compose.item["-G"] := "{u+01e4}" ; (Ǥ) G with stroke +compose.item["-h"] := "{u+0127}" ; (ħ) h with stroke +compose.item["-H"] := "{u+0126}" ; (Ħ) H with stroke compose.item["-i"] := "{u+012b}" ; (ī) i with macron compose.item["-I"] := "{u+012a}" ; (Ī) I with macron compose.item["-j"] := "{u+0249}" ; (ɉ) j with stroke @@ -343,7 +344,6 @@ compose.item["-Z"] := "{u+01b5}" ; (Ƶ) Z with stroke ; Compose : Macron and Stroke (additional) -compose.item["_f"] := "{u+1e9d}" ; (ẝ) long s with high stroke compose.item["_g"] := "{u+1e21}" ; (ḡ) g with macron compose.item["_G"] := "{u+1e20}" ; (Ḡ) G with macron compose.item["_i"] := "{u+0268}" ; (ɨ) i with stroke @@ -395,24 +395,18 @@ compose.item["bd"] := "{u+0256}" ; (ɖ) small letter d with tail compose.item["bD"] := "{u+0189}" ; (Ɖ) capital letter African D compose.item["be"] := "{u+0115}" ; (ĕ) e with breve compose.item["bE"] := "{u+0114}" ; (Ĕ) E with breve -compose.item["bf"] := "{u+0259}" ; (ə) small letter schwa (Azerbaijani) -compose.item["bF"] := "{u+018f}" ; (Ə) capital letter schwa (Azerbaijani) compose.item["bg"] := "{u+011f}" ; (ğ) g with breve compose.item["bG"] := "{u+011e}" ; (Ğ) G with breve compose.item["bi"] := "{u+012d}" ; (ĭ) i with breve compose.item["bI"] := "{u+012c}" ; (Ĭ) I with breve compose.item["bo"] := "{u+014f}" ; (ŏ) o with breve compose.item["bO"] := "{u+014e}" ; (Ŏ) O with breve -compose.item["bs"] := "{u+0219}" ; (ș) s with comma below (Romanian) -compose.item["bS"] := "{u+0218}" ; (Ș) S with comma below (Romanian) -compose.item["bt"] := "{u+021b}" ; (ț) t with comma below (Romanian) -compose.item["bT"] := "{u+021a}" ; (Ț) T with comma below (Romanian) +compose.item["bs"] := "{u+0219}" ; (ș) s with comma below +compose.item["bS"] := "{u+0218}" ; (Ș) S with comma below +compose.item["bt"] := "{u+021b}" ; (ț) t with comma below +compose.item["bT"] := "{u+021a}" ; (Ț) T with comma below compose.item["bu"] := "{u+016d}" ; (ŭ) u with breve compose.item["bU"] := "{u+016c}" ; (Ŭ) U with breve -compose.item["bw"] := "{u+01bf}" ; (ƿ) small letter wynn -compose.item["bW"] := "{u+01f7}" ; (Ƿ) capital letter wynn -compose.item["by"] := "{u+021d}" ; (ȝ) small letter yogh -compose.item["bY"] := "{u+021c}" ; (Ȝ) capital letter yogh compose.item["b3"] := "{u+0292}" ; (ʒ) small letter ezh compose.item["b#"] := "{u+01b7}" ; (Ʒ) capital letter ezh @@ -492,20 +486,6 @@ compose.item["fv"] := "{u+2c71}" ; (ⱱ) v with right hook compose.item["fz"] := "{u+0290}" ; (ʐ) z with retroflex hook -; Compose : Swash Tail and Other Variations - -compose.item["tc"] := "{u+a793}" ; (ꞓ) c with bar -compose.item["tC"] := "{u+a792}" ; (Ꞓ) C with bar -compose.item["tf"] := "{u+a799}" ; (ꞙ) f with stroke -compose.item["tF"] := "{u+a798}" ; (Ꞙ) F with stroke -compose.item["tl"] := "{u+2c61}" ; (ⱡ) l with double bar -compose.item["tL"] := "{u+2c60}" ; (Ⱡ) L with double bar -compose.item["ts"] := "{u+023f}" ; (ȿ) s with swash tail -compose.item["tS"] := "{u+2c7e}" ; (Ȿ) S with swash tail -compose.item["tz"] := "{u+0240}" ; (ɀ) z with swash tail -compose.item["tZ"] := "{u+2c7f}" ; (Ɀ) Z with swash tail - - ; Compose : Latin Greek Letters and Variations compose.item["la"] := "{u+0251}" ; (ɑ) Latin small letter alpha @@ -535,6 +515,10 @@ compose.item["ls"] := "{u+0283}" ; (ʃ) Latin small letter esh compose.item["lS"] := "{u+01a9}" ; (Ʃ) Latin capital letter esh compose.item["lu"] := "{u+028a}" ; (ʊ) Latin small letter upsilon compose.item["lU"] := "{u+01b1}" ; (Ʊ) Latin capital letter upsilon +compose.item["lw"] := "{u+01bf}" ; (ƿ) small letter wynn +compose.item["lW"] := "{u+01f7}" ; (Ƿ) capital letter wynn +compose.item["ly"] := "{u+021d}" ; (ȝ) small letter yogh +compose.item["lY"] := "{u+021c}" ; (Ȝ) capital letter yogh compose.item["l8"] := "{u+0223}" ; (ȣ) small letter ou compose.item["l*"] := "{u+0222}" ; (Ȣ) capital letter OU compose.item["l7"] := "{u+0242}" ; (ɂ) small letter glottal stop @@ -575,6 +559,20 @@ compose.item["rz"] := "{u+01b9}" ; (ƹ) Latin small letter ezh reversed compose.item["rZ"] := "{u+01b8}" ; (Ƹ) Latin capital letter ezh reversed +; Compose : Swash Tail and Other Variations + +compose.item["tc"] := "{u+a793}" ; (ꞓ) c with bar +compose.item["tC"] := "{u+a792}" ; (Ꞓ) C with bar +compose.item["tf"] := "{u+a799}" ; (ꞙ) f with stroke +compose.item["tF"] := "{u+a798}" ; (Ꞙ) F with stroke +compose.item["tl"] := "{u+2c61}" ; (ⱡ) l with double bar +compose.item["tL"] := "{u+2c60}" ; (Ⱡ) L with double bar +compose.item["ts"] := "{u+023f}" ; (ȿ) s with swash tail +compose.item["tS"] := "{u+2c7e}" ; (Ȿ) S with swash tail +compose.item["tz"] := "{u+0240}" ; (ɀ) z with swash tail +compose.item["tZ"] := "{u+2c7f}" ; (Ɀ) Z with swash tail + + ; Compose : Currency Symbols compose.item["$a"] := "{u+058f}" ; (֏) Armenian dram @@ -817,8 +815,6 @@ compose.item["q0"] := "{u+21d4}" ; (⇔) left right double arrow ; Compose : Various Symbols compose.item["sa"] := "{u+2100}" ; (℀) account of -compose.item["sb"] := "{u+203d}" ; (‽) interrobang -compose.item["sB"] := "{u+2e18}" ; (⸘) inverted interrobang compose.item["sc"] := "{u+2105}" ; (℅) care of compose.item["sd"] := "{u+22c4}" ; (⋄) diamond operator compose.item["se"] := "{u+212e}" ; (℮) estimated symbol @@ -919,6 +915,8 @@ compose.item["ae"] := "{u+00e6}" ; (æ) letter ae compose.item["AE"] := "{u+00c6}" ; (Æ) letter AE compose.item["dh"] := "{u+00f0}" ; (ð) small letter eth compose.item["DH"] := "{u+00d0}" ; (Ð) capital letter eth +compose.item["ee"] := "{u+0259}" ; (ə) small letter schwa +compose.item["EE"] := "{u+018f}" ; (Ə) capital letter schwa compose.item["fs"] := "{u+017f}" ; (ſ) small letter long s compose.item["ij"] := "{u+0133}" ; (ij) ligature ij compose.item["IJ"] := "{u+0132}" ; (IJ) ligature IJ @@ -968,10 +966,12 @@ compose.item["o*"] := "{u+00b0}" ; (°) degree sign compose.item[".-"] := "{u+00b7}" ; (·) middle dot compose.item[".3"] := "{u+2026}" ; (…) horizontal ellipsis compose.item[".."] := "{u+2026}" ; (…) horizontal ellipsis -compose.item["a-"] := "{u+00aa}" ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) -compose.item["o-"] := "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +compose.item["a-"] := "{u+00aa}" ; (ª) feminine ordinal indicator +compose.item["o-"] := "{u+00ba}" ; (º) masculine ordinal indicator compose.item["!!"] := "{u+00a1}" ; (¡) inverted exclamation mark compose.item["??"] := "{u+00bf}" ; (¿) inverted question mark +compose.item["!?"] := "{u+203d}" ; (‽) interrobang +compose.item["?!"] := "{u+2e18}" ; (⸘) inverted interrobang compose.item["oc"] := "{u+00a9}" ; (©) copyright sign compose.item["(c"] := "{u+00a9}" ; (©) copyright sign compose.item["op"] := "{u+2117}" ; (℗) sound recording copyright @@ -996,6 +996,10 @@ compose.item[";w"] := "{u+25e6}" ; (◦) white bullet compose.item[";h"] := "{u+2043}" ; (⁃) hyphen bullet compose.item[";t"] := "{u+2023}" ; (‣) triangular bullet compose.item[";;"] := "{u+2022}" ; (•) bullet +compose.item[":("] := "{u+2639}" ; (☹) white frowning face +compose.item[":)"] := "{u+263a}" ; (☺) white smiling face +compose.item[";)"] := "{u+263b}" ; (☻) black smiling face +compose.item["<3"] := "{u+2665}" ; (♥) black heart suit compose.item["[]"] := "{u+2610}" ; (☐) ballot box compose.item["[v"] := "{u+2611}" ; (☑) ballot box with check compose.item["[y"] := "{u+2611}" ; (☑) ballot box with check @@ -1832,8 +1836,7 @@ compose.item["?U"] := "{u+1ef0}" ; (Ự) U with horn and dot below >!sc056:: ; Right Alt + ISO Key <^>!sc029:: ; AltGr + Grave Accent <^>!sc056:: ; AltGr + ISO Key - keys := InputHook("L2", "{esc}") - keys.Start() - keys.Wait() - Send % compose.item[keys.Input] + ih := InputHook("L2", gEndKeys) + ih.Start(), ih.Wait() + Send % compose.item[ih.Input] return